home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / ASSEMBLE / H055.ZIP / DEMO / CLOCK.ALC next >
Text File  |  1987-07-20  |  3KB  |  122 lines

  1.     TITLE 'CLOCK.ALC - TRANSPARENT PC/370 OS TO DISPLAY CLOCK'
  2. *********
  3. *
  4. * PGMID. CLOCK.ALC (LINKED TO CLOCK.MOD FOR DYNMAIC LOAD AND EXEC)
  5. * AUTHOR. DON HIGGINS
  6. * DATE.   04/26/87
  7. * REMARKS.
  8. *         THIS MODULE DEFINES TRANSPARENT SVC HANDLER AND EXTERNAL
  9. *         INTERRUPT HANDLER TO ALLOW DISPLAYING TIME AND DATE IN
  10. *         UPPER LEFT CORNER OF SCREEN.  RETURN FROM THIS MODULE IS
  11. *         VIA LPSW WHICH PLACES CALLING PROGRAM IN PROBLEM STATE WITH
  12. *         EXTERNAL INTERRUPTS ENABLED.
  13. * MAINTENANCE.
  14. *
  15. * 07/20/87 USE PSA DSECT WITH REGISTER 0 FOR LOW MEMORY ACCESS
  16. *
  17. *
  18. *
  19. *
  20. *********
  21. CLOCK    CSECT
  22.     USING *,R15
  23.     USING PSA,R0
  24.     L     R0,=V(DTIME)
  25.     S     R0,=A(CLOCK)
  26.     AR    R0,R15            CALC DTIME ENTRY FOR COM OR MOD
  27.     ST    R0,ADTIME         SAVE DTIME RTN ENTRY
  28.     LA    R0,SVCRTN
  29.     ST    R0,SVCPSW+4       INIT NEW SVC PSW ADDR
  30.     LA    R0,EXTRTN
  31.     ST    R0,EXTPSW+4       INIT NEW EXT PSW ADDR
  32.     MVC   NEWSVC(8),SVCPSW  SET NEW SVC PSW
  33.     MVC   NEWEXT(8),EXTPSW  SET NEW EXT PSW
  34.     ST    R14,PRBPSW+4      INIT PROBLEM STATE EXIT PSW ADDR
  35.     LPSW  PRBPSW            EXIT WITH NEW PROBLEM PSW
  36. SVCPSW   DS    0D
  37.     DC    X'070C0000',A(*-*)  ENTER SVC HANDLER IN SUPR STATE
  38. EXTPSW   DS    0D
  39.     DC    X'070C0000',A(*-*)  ENTER EXT HANDLER IN SUPR STATE
  40. PRBPSW   DS    0D
  41.     DC    X'070D0000',A(*-*)     RETRUN TO CALLER IN PROB. STATE
  42. *********
  43. *
  44. *  TRANSPARENT SVC INTERRUPT HANDLER
  45. *
  46. *********
  47. SVCRTN   EQU   *
  48.     DROP  R15
  49.     ST    R15,NEWSVC+4  USE NEW SVC PSW AS TEMP STORGE FOR BASE
  50.     BALR  R15,0         INIT BASE
  51.     USING *,R15
  52.     ST    R14,SVCSAV
  53.     L     R14,NEWSVC+4
  54.     ST    R14,SVCSAV+4  SAVE R14-R15 FOR RESTORE
  55.     LR    R14,R15
  56.     BCTR  R14,0
  57.     BCTR  R14,0
  58.     ST    R14,NEWSVC+4  RESET NEW SVC PSW
  59.     L     R14,OLDSVC+4  R14 = ADDR SVC + 2
  60.     BCTR  R14,0
  61.     ICM   R14,8,0(R14)  GET SVC #
  62.     STCM  R14,8,SVCXX+1 SETUP SVC TO ISSUE IN SUPR STATE
  63.     LM    R14,R15,SVCSAV RESTORE ALL REGS
  64. SVCXX    SVC   *-*           REISSUE SVC
  65.     LPSW  OLDSVC        EXIT TO INSTR AFTER ORIG SVC IN PROB STATE
  66. SVCSAV   DC    2F'0'  SAVE R14-R15
  67. ********
  68. *
  69. * EXTERNAL INTERRUPT RTN TO DISPLAY CLOCK IN UPPER LEFT OF SCREEN
  70. *
  71. ********
  72. EXTRTN   EQU   *
  73.     DROP  R15
  74.     ST    R15,NEWEXT+4  USE NEW EXT PSW AS TEMP SAVE
  75.     BALR  R15,0
  76.     USING *,R15
  77.     ST    R14,EXTSAV    SAVE ORIG R14,R15,R0,R1
  78.     L     R14,NEWEXT+4
  79.     ST    R14,EXTSAV+4
  80.     STM   R0,R1,EXTSAV+8
  81.     LR    R14,R15
  82.     BCTR  R14,0
  83.     BCTR  R14,0
  84.     ST    R14,NEWEXT+4  RESET NEWEXT PSW
  85.     L     R15,ADTIME
  86.     DROP  R15
  87.     BALR  R14,R15       DISPLAY TIME
  88.     USING *,R14
  89.     LM    R14,R0,EXTSAV RESTORE ALL REGS
  90.     LPSW  OLDEXT        EXIT TO NEXT INSTR IN PROB STATE
  91.     DROP  R14
  92. EXTSAV   DC    4F'0'   SAVE R14-R1
  93. ADTIME   DC    A(8-8)  ADDRESS OF DISPLAY TIME ROUTINE
  94. ********
  95. *
  96. * COMMON DATA
  97. *
  98. ********
  99. R0       EQU   0
  100. R1       EQU   1
  101. R14      EQU   14
  102. R15      EQU   15
  103. *********
  104. *
  105. * PSA - PREFIX STORAGE AREA DSECT (SEE PSW.DOC FOR MORE INFO.)
  106. *
  107. *********
  108. PSA      DSECT
  109.     ORG   PSA+X'18'
  110. OLDEXT   DS    D X'18' OLD EXTERNAL PSW
  111. OLDSVC   DS    D X'20'OLD SUPERVISOR CALL PSW
  112. OLDPGM   DS    D X'28' OLD PROGRAM CHECK PSW
  113. OLDMCK   DS    D X'30' OLD MACHINE CHECK PSW
  114. OLDIOS   DS    D X'38' OLD I/O INTERRUPT PSW
  115.     ORG   PSA+X'58'
  116. NEWEXT   DS    D X'58' NEW EXTERNAL PSW
  117. NEWSVC   DS    D X'60' NEW SUPERVISOR CALL PSW
  118. NEWPGM   DS    D X'68' NEW PROGRAM CHECK PSW
  119. NEWMCK   DS    D X'70' NEW MACHINE CHECK PSW
  120. NEWIOS   DS    D X'78' NEW I/O INTERRUPT PSW
  121.     END   CLOCK
  122.